﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Onshi.POS.AccesoDatos.Interfaces;
using System.Data;
using System.Data.SqlClient;
using Onshi.POS.Modelo;

namespace Onshi.POS.AccesoDatos
{
	public class ServicioDatosTipoFormaPago : ServicioDatosBase, IServicioDatosTipoFormaPago
	{
		#region Constructores

        public ServicioDatosTipoFormaPago()
            : base()
        {
        }

        #endregion

        #region Metodos

        public DataSet TipoFormaPagos_DevolverTodos()
        {
            try
            {
                var cm = new SqlCommand("TipoFormaPagos_DevolverTodos", Conexion);
                cm.CommandType = CommandType.StoredProcedure;
                var da = new SqlDataAdapter(cm);
                var ds = new DataSet();
                da.Fill(ds);
                return ds;
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                if (Conexion.State == ConnectionState.Open)
                    Conexion.Close();
            }
        }

        public DataSet TipoFormaPagos_DevolverPorId(Int32 idTipoFormaPago)
        {
            try
            {
                var cm = new SqlCommand("TipoFormaPagos_DevolverPorId", Conexion);
                cm.CommandType = CommandType.StoredProcedure;
                cm.Parameters.Add(new SqlParameter("@IdTipoFormaPago", idTipoFormaPago));
                var da = new SqlDataAdapter(cm);
                var ds = new DataSet();
                da.Fill(ds);
                return ds;
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                if (Conexion.State == ConnectionState.Open)
                    Conexion.Close();
            }
        }

        public Int32 TipoFormaPagos_Insertar(String nombre, Int16 idLocalidad, String codigoPostal)
        {
            try
            {
                var cm = new SqlCommand("TipoFormaPagos_Insertar", Conexion);
                cm.CommandType = CommandType.StoredProcedure;
                cm.Parameters.Add(new SqlParameter("@Nombre", nombre));
                cm.Parameters.Add(new SqlParameter("@IdLocalidad", idLocalidad));
                cm.Parameters.Add(new SqlParameter("@CodigoPostal", codigoPostal));
                Conexion.Open();
                return Convert.ToInt32(cm.ExecuteScalar());
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                if (Conexion.State == ConnectionState.Open)
                    Conexion.Close();
            }
        }

        public void TipoFormaPagos_Modificar(Int32 idTipoFormaPago, String nombre, Int16 idLocalidad, String codigoPostal)
        {
            try
            {
                var cm = new SqlCommand("TipoFormaPagos_Modificar", Conexion);
                cm.CommandType = CommandType.StoredProcedure;
                cm.Parameters.Add(new SqlParameter("@IdLocalidad", idLocalidad));
                cm.Parameters.Add(new SqlParameter("@Nombre", nombre));
                cm.Parameters.Add(new SqlParameter("@IdLocalidad", idLocalidad));
                cm.Parameters.Add(new SqlParameter("@CodigoPostal", codigoPostal));
                Conexion.Open();
                cm.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                if (Conexion.State == ConnectionState.Open)
                    Conexion.Close();
            }
        }

        public void TipoFormaPagos_Eliminar(Int32 idTipoFormaPago)
        {
            try
            {
                var cm = new SqlCommand("TipoFormaPagos_Eliminar", Conexion);
                cm.CommandType = CommandType.StoredProcedure;
                cm.Parameters.Add(new SqlParameter("@IdTipoFormaPago", idTipoFormaPago));
                Conexion.Open();
                cm.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                if (Conexion.State == ConnectionState.Open)
                    Conexion.Close();
            }
        }

        #endregion
	}
}
